package cn.topcode.unicorn.utils;

import javax.servlet.http.HttpServletRequest;

public class IpUtil {

	/**
	 * 获取客户端IP
	 * 考虑了Nginx反向代理获取IP问题
	 * @param request
	 * @return
	 */
	public static String getIp(HttpServletRequest request) {
		String ip = request.getHeader("X-Forwarded-For");
		if(!StringUtil.isBlank(ip) && !"unKnown".equalsIgnoreCase(ip)){
			//多次反向代理后会有多个ip值，第一个ip才是真实ip
		    int index = ip.indexOf(",");
		    if(index != -1){
		    	return ip.substring(0,index);
		    }else{
		    	return ip;
		    }
		}
		ip = request.getHeader("X-Real-IP");
		if(!StringUtil.isBlank(ip) && !"unKnown".equalsIgnoreCase(ip)){
			return ip;
		}
		return request.getRemoteAddr();
	}
}